/**
 * Copyright (c) 2011 Technical Centre Radio Systems Ltd.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package ua.tcrs.tabula;

public class Topic<I> {
	String group, event;
	I id;
	
	public Topic( String group, String event ) {
		this( group, event, null );
	}
	public Topic( String group, String event, I id ) {
		this.group = group;
		this.event = event;
		this.id = id;
	}
	
	public boolean match( Event<?,?> e ) {
		return (group.equals("") || group.equals(e.getGroup())) &&
			(event.equals("") || event.equals(e.getEvent())) &&
			(id == null || id.equals(e.getId()));
			//(id == null || (e.getId() != null && (
				//(id.getClass().isAssignableFrom(e.getId().getClass()) && id.equals(e.getId())) ||
				//(e.getId().getClass().isAssignableFrom(id.getClass()) && e.getId().equals(id))
			//)));
	}
}
